package org.apache.rocketmq.namesrv.route;

import org.apache.commons.lang3.StringUtils;
import org.apache.rocketmq.common.MixAll;
import org.apache.rocketmq.remoting.RPCHook;
import org.apache.rocketmq.remoting.protocol.RemotingCommand;
import org.apache.rocketmq.remoting.protocol.RemotingSerializable;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


/**
 * @课程描述:从零带你写框架系列中的课程，整个系列包含netty，xxl-job，rocketmq，nacos，sofajraft，spring，springboot，disruptor，编译器，虚拟机等等。
 * @author：陈清风扬，个人微信号：chenqingfengyangjj。
 * @date:2024/12/25
 * @方法描述：当前类的对象在第一版本代码中还用不到，确切地说，是RPC回调对象在第一版本代码中还用不到，所以我就先不实现这个类的具体内容了
 * 所谓RPC回调其实很简单，那就是在Namesrv处理接收到的请求前后，以及在发送请求前后，可以执行RPCHook中的回调方法
 * 处理请求或者发送请求之前可以执行doBeforeRequest方法，处理请求之后和发送请求之后，其实就是得到响应之后，可以执行doAfterResponse方法。当前类是rocketmq中内置的一个RPCHook，在后面版本代码中才会用到
 * 在第二版本代码中我会对当前类做一点简单的实现，给大家展示一下RPCHook的具体用法，等引入Broker之后，再为大家真正实现当前类
 */
public class ZoneRouteRPCHook implements RPCHook {


    @Override
    public void doBeforeRequest(String remoteAddr, RemotingCommand request) {

    }


    @Override
    public void doAfterResponse(String remoteAddr, RemotingCommand request, RemotingCommand response) {

    }

}
